Data integrity is an important feature for storage and communication systems. It is desirable for detection and, if possible, correction, to occur as early as possible to reduce impact to system integrity and performance.
Cyclic redundancy check (CRC) codes are efficient and effective data integrity tools for error checking. Several methods for calculating CRC and hardware have been proposed in the past. These methods include bit-serial methods that use linear feedback shift registers (LFSRs) and parallel methods that utilize lookup tables for CRC computation.